package com.tiger.project.domain;
import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.tiger.common.annotation.Excel;
import com.tiger.common.core.domain.BaseEntity;
import lombok.Data;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.EqualsAndHashCode;


/**
 * 【项目档案】对象 project_archive
 *
 * @author standard
 * @date 2022-09-19
 */
@Data
@EqualsAndHashCode(callSuper = false)
@ApiModel(value = "project_archive对象", description = "【项目档案】内容")
public class ProjectArchive extends BaseEntity {
private static final long serialVersionUID = 1L;

        /** ID */
        private Long id;

        /** 关联项目申请id */
        @Excel(name = "关联项目申请id")
        @ApiModelProperty(value = "关联项目申请id")
        private Long projectId;

        /** 项目编号 */
        @Excel(name = "项目编号")
        @ApiModelProperty(value = "项目编号")
        private String projectNo;

        /** 项目名称 */
        @Excel(name = "项目名称")
        @ApiModelProperty(value = "项目名称")
        private String projectName;

        /** 1-维修项目，2-建设项目 */
        @Excel(name = "1-维修项目，2-建设项目")
        @ApiModelProperty(value = "1-维修项目，2-建设项目")
        private Long projectType;

        /** 项目情况描述 */
        @Excel(name = "项目情况描述")
        @ApiModelProperty(value = "项目情况描述")
        private String projectDesc;

        /** 日期 */
        @JsonFormat(pattern = "yyyy-MM-dd")
        @Excel(name = "日期", width = 30, dateFormat = "yyyy-MM-dd")
        @ApiModelProperty(value = "日期")
        private Date projectDate;

        /** 1-已归档，0-未归档 */
        @Excel(name = "1-已归档，0-未归档")
        @ApiModelProperty(value = "1-已归档，0-未归档")
        private Long isArchived;

        /** 删除标志 1-是，0-否 */
        @Excel(name = "删除标志 1-是，0-否")
        @ApiModelProperty(value = "删除标志 1-是，0-否")
        private Long isDeleted;

        /** 创建时间 */
        @JsonFormat(pattern = "yyyy-MM-dd")
        @Excel(name = "创建时间", width = 30, dateFormat = "yyyy-MM-dd")
        @ApiModelProperty(value = "创建时间")
        private Date createdAt;

        /** 更新时间 */
        @JsonFormat(pattern = "yyyy-MM-dd")
        @Excel(name = "更新时间", width = 30, dateFormat = "yyyy-MM-dd")
        @ApiModelProperty(value = "更新时间")
        private Date updatedAt;

        /** 创建人 */
        @Excel(name = "创建人")
        @ApiModelProperty(value = "创建人")
        private Long createById;

        /** 创建人名称 */
        @Excel(name = "创建人名称")
        @ApiModelProperty(value = "创建人名称")
        private String createByName;

        /** 更新人 */
        @Excel(name = "更新人")
        @ApiModelProperty(value = "更新人")
        private Long updateById;

        /** 更新人名称 */
        @Excel(name = "更新人名称")
        @ApiModelProperty(value = "更新人名称")
        private String updateByName;

        /** 租户id(0--平台用户 非0--正常租户) */
        @Excel(name = "租户id(0--平台用户 非0--正常租户)")
        @ApiModelProperty(value = "租户id(0--平台用户 非0--正常租户)")
        private Long tenantId;

        @ApiModelProperty(value = "公司id")
        private Long companyId;

        /** 承租方id */
        @Excel(name = "承租方id")
        @ApiModelProperty(value = "承租方id")
        private Long tenantryId;

        /** 承租方姓名 */
        @Excel(name = "承租方姓名")
        @ApiModelProperty(value = "承租方姓名")
        private String tenantryName;

        /** 承租方联系方式 */
        @Excel(name = "承租方联系方式")
        @ApiModelProperty(value = "承租方联系方式")
        private String tenantryPhone;

        @ApiModelProperty(value = "资产名称")
        private String assetName;

        /** 预算金额 */
        @Excel(name = "预算金额")
        @ApiModelProperty(value = "预算金额")
        private BigDecimal budgetAmount;

        @ApiModelProperty(value = "合同")
        private List<Contract> contractList = new ArrayList<>();

        @ApiModelProperty(value = "项目验收")
        private List<ProjectAcceptance> acceptanceList = new ArrayList<>();

        @ApiModelProperty(value = "维修项目信息")
        private List<MaintenanceApply> maintenanceApplyList = new ArrayList<>();

        @ApiModelProperty(value = "建设项目信息")
        private List<ConstructionApply> constructionApplyList = new ArrayList<>();


        @ApiModelProperty(value = "1-升序 2-降序")
        private Long rank;


}
